package String_4_20;

//  1.StringBuffer()                                           创建初始容量为16，不含任何内容的字符串缓冲区
//  2.StringBuffer(int capacity)                               创建初始容量为capacity，不含任何内容的字符串缓冲区
//  3.StringBuffer(String s)                                   创建初始容量为s.length() + 16，内容为s的字符串缓冲区
//  4.int length()                                             获取字符串缓冲区中字符串内容的长度
//  5.int capacity()                                           获取字符串缓冲区中的当前容量
//  6.StringBuffer append(char c)                              添加参数到StringBuffer对象中
//  7.StringBuffer insert(int offset, String str)              在字符串的offset位置插入字符串str
//  8.StringBuffer deleteCharAt(int index)                     移除此序列指定位置的字符
//  9.StringBuffer delete(int start, int end)                  删除StringBuffer对象中指定范围的字符或字符串序列
//  10.StringBuffer replace(int start, int end, String s)      在StringBuffer对象中替换指定的字符或字符串序列
//  11.void setCharAt(int index, char ch)                      修改指定索引index处的字符序列
//  12.StringBuffer reverse()                                  反转字符串
//  13.String substring(int start)                             获取字符串缓冲区中字符串从索引start（含）至末尾的子串
//  14.String substring(int start, int end)                    获取字符串缓冲区中字符串从索引start（含）至索引end（不含）的子串
//  15.String toString()                                       获取字符串缓冲区中的字符串
public class Test3 {
    public static void main(String[] args) {
        System.out.println("1.添加-----------------------");
        add();
        System.out.println("2.删除-----------------------");
        remove();
        System.out.println("3.修改-----------------------");
        alter();
        System.out.println("4.截取-----------------------");
        sub();
    }
    public static void add()
    {
        StringBuffer sb = new StringBuffer();        //定义一个字符串缓冲区
        sb.append("abcdefg");                        //在末尾添加字符串
        sb.append("hij").append("klmn");             //连续调用append()方法添加字符串
        System.out.println("append添加结果：" + sb);
        sb.insert(2,"123");
        System.out.println("insert添加结果：" + sb);
    }

    public static void remove()
    {
        StringBuffer sb = new StringBuffer("abcdefghj");
        System.out.println("原字符串为：" + sb);
        sb.delete(1,5);                                 //指定范围删除
        System.out.println("删除指定范围结果：" + sb);
        sb.deleteCharAt(2);                       //指定位置删除
        System.out.println("删除指定位置结果：" + sb);
        sb.delete(0,sb.length());                       //清空字符串缓冲区
        System.out.println("清空字符串缓冲区结果：" + sb);
    }

    public static void alter()
    {
        StringBuffer sb = new StringBuffer("abcdef");
        sb.setCharAt(1,'p');                  //修改指定位置字符
        System.out.println("修改指定位置字符结果：" + sb);
        sb.replace(1,3,"pp");            //替换指定位置字符串或字符
        System.out.println("替换指定位置字符（串）结果：" + sb);
        System.out.println("字符串反转结果：" + sb.reverse());
    }

    public static void sub()
    {
        StringBuffer sb = new StringBuffer();           //定义一个字符串缓冲区
        System.out.println("获取sb的初始容量：" + sb.capacity());
        sb.append("itcast123");                         //在末尾添加字符串
        System.out.println("append添加结果：" + sb);
        System.out.println("添加后sb的容量：" + sb.capacity());
        System.out.println("截取第7~9个字符：" + sb.substring(6,9));
    }
}
